import log from '@dfeidao/atom-nodejs/logger/log';

import count from '@dfeidao/atom-nodejs/db/count';

import complex_query from "@dfeidao/atom-nodejs/db/complex-query";
import { systemid } from '../../atom/config';

interface Message {
	risk_po_name_no: string;
	page_no: number;
}


// 表名	asso_hidden_sou
// 标题	关联隐患源
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// risk_po_name_no	风险点名称编号	string	50	√	ⅹ
// hidden_source	隐患源编号	string	32	√	ⅹ
// hidden_code	隐患源代码	string	32	√	ⅹ
// hidden_name	隐患源名称	string	32	√	ⅹ

// 表名	hazard_source
// 标题	隐患源
// 字段名称	字段标题	字段类型	字段长度	是否为空	是否主键
// _id	id	string	50	ⅹ	√
// productid	产品ID	string	50	√	ⅹ
// hidden_source	隐患源编号	string	32	√	ⅹ
// duty_department_no	责任部门编号	string	50	√	ⅹ
// duty_department	责任部门名称	string	50	√	ⅹ
// responsible	责任人名称	string	50	√	ⅹ
// responsible_task_no	任务责任人编号	string	50	√	ⅹ
// hidden_code	隐患源代码	string	32	√	ⅹ
// hidden_name	隐患源名称	string	32	√	ⅹ
// control_level	管控级别	string	32	√	ⅹ
// control_grade	管控层级	string	32	√	ⅹ
// assess_level	评价级别	string	32	√	ⅹ
// engineer_skill	工程技术	string	128	√	ⅹ
// manage_measure	管理措施	string	128	√	ⅹ
// train_education	培训教育	string	128	√	ⅹ
// emergency_measures	应急处置措施	string	128	√	ⅹ
// personal_protect	个体防护	string	128	√	ⅹ





export default async function atom(msg: Message, action_id: string, session_id: string) {
	log('Service begin');

	const query = complex_query(action_id, session_id, systemid);
	const res = await query
		.add_field('hazard_source', '_id', '_id')
		.add_field('hazard_source', 'hidden_source', 'hidden_source')
		.add_field('asso_hidden_sou', 'risk_po_name_no', 'risk_po_name_no')
		.add_field('asso_hidden_sou', 'hidden_source', 'hidden_source').add_field('hazard_source', 'hidden_name', 'hidden_name')
		.add_field('hazard_source', 'control_level', 'control_level')
		.add_field('hazard_source', 'engineer_skill', 'engineer_skill')
		.add_field('hazard_source', 'duty_department', 'duty_department')
		.add_field('hazard_source', 'responsible', 'responsible')
		.outer_left_join('asso_hidden_sou', 'hazard_source', ['hidden_source', 'hidden_source'])
		.where_like('asso_hidden_sou', 'risk_po_name_no', msg.risk_po_name_no)
		.page(20, msg.page_no).exec();

	const c = await query
		.add_fun('asso_hidden_sou', 'risk_po_name_no', 'n', 'count')
		.outer_left_join('asso_hidden_sou', 'hazard_source', ['hidden_source', 'hidden_source'])
		.where_like('asso_hidden_sou', 'risk_po_name_no', msg.risk_po_name_no)
		.page(20, msg.page_no).exec();




	log('Service end');
	return { res, c };
}
